TestTextInput 状態のリセット
まとめ
の状態TestTextInput
実例、
システムのオンスクリーン キーボードのスタブ、
はテスト間でリセットされるようになりました。
コンテクスト
Flutter テスト フレームワークは、と呼ばれるクラスを使用します。TestTextInput
ウィジェットのテストで編集状態を追跡および操作します。
個々のテストは内部を変更する呼び出しを行うことができます
このオブジェクトの状態、場合によっては間接的に (例:
独自のハンドラーを設定することでSystemChannels.textInput
)。
後続のテストでは、次の状態をチェックする可能性があります。WidgetTester.testTextInput
そして予期しない値が得られます。
変更内容の説明
の状態WidgetTester.testTextInput
を実行する前にリセットされるようになりました。testWidgets
テスト。
移行ガイド
以前に実行されたダーティな状態に依存したテスト
テストを更新する必要があります。たとえば、次のテストでは、
からpackages/flutter/test/material/text_field_test.dart
の中に'Controller can update server'
テスト、
ダーティ状態の組み合わせにより以前はパスされていました
以前のテストと実際の状態設定の失敗によるもの
設定する必要がある場合。
移行前のコード:
でwidgetsTest
実際にテキストを変更する前に、
テキスト編集ウィジェットの場合、この呼び出しは成功した可能性があります。
expect(tester.testTextInput.editingState['text'], isEmpty);
移行後のコード:
通話を完全に削除するか、 次のようにして、状態がまだ変更されていないことを確認します。
expect(tester.testTextInput.editingState, isNull);
タイムライン
リリースされたバージョン: 1.16.3
安定版リリース: 1.17
参考文献
API ドキュメント:
TestTextInput
WidgetTester
関連する問題:
- グローバルな状態を回避するためにテスト順序をランダム化する
関連する PR:
- テスト間で状態をリセットする